package com.ronz.binarytree;

/**
 * @Description 顺序存储二叉树
 * @Author Ronz
 * @Date 2021/1/18 15:19
 * @Version 1.0
 */
public class No2_ArrBinaryTree {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6,7};
        ArrayBinaryTree binaryTree = new ArrayBinaryTree(arr);
        binaryTree.preOrder(0);
    }
}

/**
 * 顺序存储二叉树
 */
class ArrayBinaryTree{
    int[] arr;

    public ArrayBinaryTree(int[] arr){
        this.arr = arr;
    }

    /**
     * 前序遍历：根->左->右
     * @param index 数组索引，也即第几个元素
     */
    public void preOrder(int index){
        System.out.println(arr[index]);  // 先打印根
        if ((index*2+1) < arr.length){
            preOrder(index*2+1);
        }
        if ((index*2+2) < arr.length){
            preOrder(index*2+2);
        }
    }
}
